package com.framework.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.framework.entity.flow.FlowNoticeTer;
import com.framework.entity.flow.FlowNoticeTerInfo;
import com.framework.entity.sys.SysNotice;
import com.framework.entity.sys.SysNoticeRead;
import com.framework.view.FlowNoticeTerView;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 功能描述: 通知类
 *
 * @author ck
 * @date 2018/9/13 13:25
 */
public interface NoticeReadDao extends BaseMapper<SysNoticeRead> {
	//分配通知列表
	List<FlowNoticeTerView> getNoticeTerList(@Param("agentId") Long agentId);
	//未读分配通知数量
	int disCount(@Param("agentId") Long agentId);
	//百易助手通知数量
	int assCount(@Param("agentId") Long agentId);
	//分配通知详情
	FlowNoticeTer getNoticeTerInfo(@Param("noticeTerNo")String noticeTerNo);
	//分配通知详情 Map集合
	Map<String,Object> getNoticeTerInfoMap(@Param("noticeTerNo")String noticeTerNo);
	//分配通知详情终端列表
	List<Map<String,Object>> getNoticeTerInfoList(@Param("noticeTerNo")String noticeTerNo);
	//添加终端分配通知信息
	void insertNoticeTer(@Param("ex")FlowNoticeTer flowNoticeTer);
	//添加终端分配通知详情
	void insertNoticeTerInfo(@Param("ex")FlowNoticeTerInfo flowNoticeTerInfo);
	//已读操作
	void isReadTer(@Param("noticeTerNo")String noticeTerNo);
	//接受终端
	void acceptTer(@Param("noticeTerNo")String noticeTerNo);
	//系统通知列表
	List<Map<String,Object>> querySysNoticeList(@Param("agentId") Long agentId,@Param("deptId")Long deptId);
	//查询系统消息详情
	SysNotice querySysNoticeInfo(@Param("sysNoticeNo") String sysNoticeNo, @Param("deptId") Long deptId);
	//查询系统消息是否已读
	boolean sysNoticeIsRead(@Param("noticeNo")String noticeNo,@Param("agentId") Long agentId);
	//查询是否有需要接受的机器
	boolean isAcceptTer(@Param("agentId")Long agentId);
	//最近的3条系统通知
    List<Map<String, Object>> queryCarouselNoticeList(@Param("deptId") Long deptId);

	List<Map<String,Object>> queryNoticeList(@Param("agentId") Long agentId,@Param("deptId")Long deptId);
}
